/*
 * DPosition.java
 * 
 *  author: Daniel Rudigier
 *    date: 22.05.2008
 * 
 * 
 */
package ocumed.domaene.behandlung;

import ocumed.domaene.benutzerverwaltung.arztverwaltung.DArzt;
import ocumed.domaene.patientenverwaltung.DPatient;
import ocumed.domaene.terminverwaltung.DTermin;
import ocumed.teams.IArzt;
import ocumed.teams.IBenutzer;
import ocumed.teams.IPatient;
import ocumed.teams.ITermin;
import ocumed.teams.IWarteposition;

/**
 * @author Daniel Rudigier
 *
 */
public class DWarteposition implements IWarteposition, Comparable<IWarteposition> {
    private int m_id;
    private IArzt m_arzt;
    private ITermin m_termin;
    private IPatient m_patient;
    private short m_pos;
    
    /**
     * 
     * constructor
     * 
     * @param id
     * @param arzt
     * @param termin
     * @param patient
     * @param pos
     */
    public DWarteposition(int id, IArzt arzt, ITermin termin, IPatient patient,
            short pos) {
        m_id = id;
        m_arzt = arzt;
        m_termin = termin;
        m_patient = patient;
        m_pos = pos;
    }

    /**
     * override
     *
     * @see ocumed.teams.IWarteposition#getBenutzer()
     */
    public IArzt getArzt() {
        return m_arzt;
    }

    /**
     * override
     *
     * @see ocumed.teams.IWarteposition#getPatient()
     */
    public IPatient getPatient() {
        return m_patient;
    }

    /**
     * override
     *
     * @see ocumed.teams.IWarteposition#getTermin()
     */
    public ITermin getTermin() {
        return m_termin;
    }

    /**
     * override
     *
     * @see ocumed.teams.IWarteposition#getWartepositionid()
     */
    public int getWartepositionid() {
        return m_id;
    }

    /**
     * override
     *
     * @see ocumed.teams.IWarteposition#getWartepositionnr()
     */
    public short getWartepositionnr() {
        return m_pos;
    }

    /**
     * override
     *
     * @see ocumed.teams.IWarteposition#setBenutzer(ocumed.teams.IBenutzer)
     */
    public void setBenutzer(IBenutzer benutzer) {
        m_arzt = (DArzt) benutzer;
    }

    /**
     * override
     *
     * @see ocumed.teams.IWarteposition#setPatient(ocumed.teams.IPatient)
     */
    public void setPatient(IPatient patient) {
        m_patient = (DPatient) patient;
    }

    /**
     * override
     *
     * @see ocumed.teams.IWarteposition#setTermin(ocumed.teams.ITermin)
     */
    public void setTermin(ITermin termin) {
        m_termin = (DTermin) termin;
    }

    /**
     * override
     *
     * @see ocumed.teams.IWarteposition#setWartepositionid(int)
     */
    public void setWartepositionid(int wartepositionid) {
        m_id = wartepositionid;
    }

    /**
     * override
     *
     * @see ocumed.teams.IWarteposition#setWartepositionnr(short)
     */
    public void setWartepositionnr(short wartepositionnr) {
        m_pos = wartepositionnr;
    }

    /**
     * override
     *
     * @see java.lang.Comparable#compareTo(java.lang.Object)
     */
    public int compareTo(IWarteposition o) {
        if (m_pos < o.getWartepositionnr()) {
            return -1;
        } else if (m_pos > o.getWartepositionnr()) {
            return 1;
        }
        return 0;
    }
    
    /**
     * override
     *
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        String ret = "WP#" + m_patient.getPatientid() 
            + ": " + m_patient.getPatientvorname() 
            + " " + m_patient.getPatientnachname() 
            + " (" + m_pos + ")";
        return ret;
    }

}
